Micron Document
🎖️GitЯра🎖️

Node / meshtastic / Meshtastic-Android / files / .coderabbit / ast-grep-rules / no-rssi-zero-default.yml

Displaying Raw • Download

.coderabbit/ast-grep-rules/no-rssi-zero-default.yml automation/changelog-v2.8.0 (ed192020) Text, 1.04 KB

T8b949e# Recurring defect class A — see "Presence vs sentinel zero" in .skills/code-review/SKILL.md.
T8b949e#
T8b949e# 0 dBm is the STRONGEST value on the RSSI scale, so defaulting a missing reading to 0 renders an unknown signal as an
T8b949e# excellent one. Keep the value nullable end-to-end and let `MetricFormatter.rssi(null)` render an em dash.
T8b949e#
T8b949e# Scope: this rule targets DEFAULTING a live reading (`?: 0`), not comparing a stored one. A `rssi == 0` test against
T8b949e# persisted data can be legitimate migration handling — `Reaction.kt` reads pre-schema-51 rows that stored 0 where the
T8b949e# column is now nullable, so there a 0 really is indistinguishable from "no reading". Broadening this rule to `== 0`
T8b949e# would flag that documented exception and nothing else, so it deliberately stops at the `?: 0` form.
Tff7b72idTb4b4b4: Ta5d6ffno-rssi-zero-default
Tff7b72languageTb4b4b4: Ta5d6ffkotlin
Tff7b72severityTb4b4b4: Ta5d6fferror
Tff7b72messageTb4b4b4: Ta5d6ff"Ta5d6ff0Te6edf3 Ta5d6ffdBmTe6edf3 Ta5d6ffisTe6edf3 Ta5d6fftheTe6edf3 Ta5d6ffstrongestTe6edf3 Ta5d6ffRSSI,Te6edf3 Ta5d6ffnotTe6edf3 Ta5d6ff\"Ta5d6ffunknownTa5d6ff\"Te6edf3 Ta5d6ff—Te6edf3 Ta5d6ffkeepTe6edf3 Ta5d6fftheTe6edf3 Ta5d6ffvalueTe6edf3 Ta5d6ffnullable.Ta5d6ff"
Tff7b72ruleTb4b4b4:
Tff7b72anyTb4b4b4:
Tb4b4b4- Tff7b72patternTb4b4b4: Ta5d6ff"Ta5d6ff$XTe6edf3 Ta5d6ff?:Te6edf3 Ta5d6ff0Ta5d6ff"
Tb4b4b4- Tff7b72patternTb4b4b4: Ta5d6ff"Ta5d6ff($XTe6edf3 Ta5d6ff?:Te6edf3 Ta5d6ff0)Te6edf3 Ta5d6ff!=Te6edf3 Ta5d6ff0Ta5d6ff"
Tff7b72constraintsTb4b4b4:
Tff7b72XTb4b4b4:
Tff7b72regexTb4b4b4: Ta5d6ff"Ta5d6ff(?i)rssi$Ta5d6ff"

Served by rngit 1.5.2 - Generated in 0.05s